'''
输入一个正整数数组，把数组里所有数字拼接起来排成一个数，打印能拼接出的所有数字中最小的一个。
例如输入数组{3，32，321}，则打印出这三个数字能排成的最小数字为321323。

解题思路，映射成字符串升序排列
'''
import operator
class Solution:
    def PrintMinNumber(self, numbers):
        if not numbers: return ""
        numbers = list(map(str,numbers))
        # 默认从小到大排序比较那个开头比较小升序排序
        sorted(numbers, cmp=lambda x, y: cmp(x+y,y+x))
        return ''.join(numbers).lstrip('0') or '0'
s = Solution()
print(s.PrintMinNumber([3,32,321]))